import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { 
  BackButtonComponent, 
  CountDownComponent, 
  HorizontalGridComponent, 
  ImageSlideComponent, 
  ProductCardComponent, 
  ProductTitleComponent, 
  ScrollableTabComponent, 
  VerticalGridComponent,
  ProductVariantDialogComponent,
  ProductAmountComponent
} from './components';
import { AvatarDirective, GridItemDirective, GridItemImageDirective, GridItemTitleDirective, TagDirective } from './directives';
import { AgoPipe } from './pipes/ago.pipe';
import { FooterComponent } from './components';
import { DialogModule } from '../dialog';

@NgModule({
    declarations: [
        ScrollableTabComponent,
        ImageSlideComponent,
        HorizontalGridComponent,
        GridItemDirective,
        GridItemImageDirective,
        GridItemTitleDirective,
        AgoPipe,
        CountDownComponent,
        FooterComponent,
        VerticalGridComponent,
        ProductCardComponent,
        TagDirective,
        AvatarDirective,
        ProductTitleComponent,
        BackButtonComponent,
        ProductVariantDialogComponent,
        ProductAmountComponent
    ],
    imports: [
        CommonModule,
        FormsModule,
        DialogModule
    ],
    exports: [
        CommonModule,
        FormsModule,
        ScrollableTabComponent,
        ImageSlideComponent,
        HorizontalGridComponent,
        GridItemDirective,
        GridItemImageDirective,
        GridItemTitleDirective,
        AgoPipe,
        CountDownComponent,
        FooterComponent,
        VerticalGridComponent,
        ProductCardComponent,
        TagDirective,
        AvatarDirective,
        ProductTitleComponent,
        BackButtonComponent,
        ProductVariantDialogComponent,
        ProductAmountComponent
    ]
})
export class SharedModule { }
